<p>
    Projects that provide Visual Studio IDE support.</p>
<h2>
    Debugging</h2>
<p>
    Debugging VS packages can be a royal PITA. The hive can be used but install.bat 
    often requires it to be reset each time.</p>
<p>
    Hive: </p>
<p>
    Cosmos.VS.Package is setup for debugging via a second (non hive) instance but 
    the path is set for the default directory on x64.</p>
<p>
    Hive:<br />
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe<br />
    <a href="file:///D:/source/Cosmos/source/Cosmos.sln">
    D:\source\Cosmos\source\Cosmos.sln</a> /ranu /rootsuffix Exp</p>
<p>
    Non hive:<br />
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe<br />
    <a href="file:///D:/source/Cosmos/source/Cosmos.sln">D:\source\Cosmos\source\Cosmos.sln</a></p>
<h2>
    Resources</h2>
<h3>
    VSIX</h3>
<ul>
    <li><a href="http://msdn.microsoft.com/en-us/library/ff363239.aspx">MSDN: VSIX 
        Deployment</a></li>
    <li><a href="http://superuser.com/questions/73675/how-do-i-install-a-vsix-file-in-visual-studio">
        How do I deploy a VSIX file?</a></li>
</ul>
<h3>
    MEF</h3>
<ul>
    <li>MSDN<ul>
        <li><a href="http://code.msdn.microsoft.com/vsx">Visual Studio 2010 Editor 
            Extensibility Samples</a></li>
        <li><a href="http://msdn.microsoft.com/en-us/library/dd885242.aspx">Extending the 
            editor</a></li>
        <li><a href="http://msdn.microsoft.com/en-us/library/dd885013.aspx">Managed 
            Extensibility Framework in the Editor</a></li>
        <li><a href="http://msdn.microsoft.com/en-us/library/dd885122.aspx">Getting Started 
            with Editor Extensions</a></li>
        <li><a href="http://msdn.microsoft.com/en-us/library/dd393694.aspx">Visual Studio 
            Extension Deployment</a></li>
        </ul>
    </li>
    <li><a href="http://channel9.msdn.com/blogs/vsipmarketing/vsx212-adding-a-language-service-into-visual-studio-2010">
        How to integrate a language service (Video)</a></li>
    <li><a href="http://channel9.msdn.com/posts/VSIPMarketing/VSX212-Adding-a-Language-Service-into-Visual-Studio-2010/">
        Chris Granger&#39;s talk on Language Integration in the 2010 Editor</a></li>
    <li><a href="http://channel9.msdn.com/posts/VSIPMarketing/VSX103-Lighting-up-the-new-Visual-Studio-2010-Editor-with-Rich-Extensions/">
        Chris Granger&#39;s talk on Lighting up the editor with extensions</a></li>
</ul>
<h2>
    Projects</h2>
<p>
    Note that some VS parts, the custom VS debugger for example is in \Debug.</p>
<h3>
    Cosmos.VS.Package</h3>
<p>
    MPF project. 
    Does not appear to be a VS Package. So what is it? This was our first package 
    from very old VS, might be old crapp COM model?</p>
<p>
    Provides:</p>
<ul>
    <li>Support for the .Cosmos project type</li>
    <li>Project configuration dialogs</li>
    <li>X# custom tool generator - Move to Cosmos.VS.XSharp probably</li>
</ul>
<h3>
    Cosmos.VS.Windows</h3>
<p>
    Provides UI for Cosmos debug windows in VS.
      Contains windows, toolbars and menu options. </p>
<p>
    Separate from other pacakges 
      because:</p>
<ul>
    <li>Threading and hosting issues</li>
    <li>It is a different project 
      type.</li>
    <li>Allows external testing by Cosmos.VS.Windows.Test</li>
</ul>
<h3>
    Cosmos.VS.Windows.Test</h3>
<p>
    Testing project for Cosmos.VS.Windows. Not used by VS itself.</p>
<h3>
    Cosmos.VS.Wizards</h3>
<p>
    Not VSIX, not MEF, not MPF. Why is this a separate assembly?</p>
<p>
    Provides:</p>
<ul>
    <li>Support for creating new Cosmos projects from within Visual Studio.</li>
</ul>
<h3>
    Cosmos.VS.XSharp</h3>
<p>
    MPF project and VS Package.</p>
<p>
    XSharp Language Service</p>
<p>
    Provides:</p>
<ul>
    <li>Syntax coloring for X#.
    </li>
    <li>Code completion / intellisense (future)
    </li>
</ul>
<p>
    X# custom tool generator is in Cosmos.VS.Package.</p>
    <h3>
        Comos.VS.HostProcess</h3>
    <p>
            VS debugger requires a process that starts paused, and is then later started. To 
            do this and to unify the process that is used, we use a proxy process which then 
            controls the actual execution environment (VMWare, QEMU, etc).</p>
    <h3>
        Comos.Debug.VSDebugEngine</h3>
    <p>
        This provides a custom debug engine to Visual Studio to handle tracing, 
        breakpoints, stepping, watches, etc.</p>
        <ul>
            <li>AD7.Impl \ AD7Process.cs<ul>
                <li>Launches DebugHost, which then launches 
                VMWare etc</li>
                <li>Contains pipes for communicating to VMWare&#39;s serial port to DebugStub</li>
                </ul>
            </li>
            <li>BreakpointManager.cs<ul>
                <li>contains notes on breakpoints</li>
                </ul>
            </li>
        </ul>
	
	    <p>
            References</p>
    <ul>
        <li>http://archive.msdn.microsoft.com/debugenginesample/Release/ProjectReleases.aspx?ReleaseId=4149</li>
    </ul>
	
	    <p>
            &nbsp;</p>
    
